// pages/Search/Search.ts
import { getSearchList } from "../../api/search"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    value: '',
    historyList: [],
    showList: [],
  } as any,
  time: null,


  // 跳转至详情
  toJumpDetail(e: any) {
    // console.log(e.currentTarget.dataset.id);
    wx.navigateTo({ url: `/pages/Detail/detail?id=`+ e.currentTarget.dataset.id })
  },
  /* input框事件 */
  onInput(event: any) {
    // event.detail 为当前输入的值
    // console.log(event.detail.value);
    this.setData({
      value: event.detail.value
    })
    // 输入框不能为空
    clearTimeout(this.data.time)
    this.data.time = setTimeout(() => {
      this.getSearch()
    }, 200)

  },

  // 请求数据的函数
  getSearch() {
    let { historyList } = this.data
    // 历史记录最多只能保存5条
    if (historyList.length >= 5) {
      historyList.pop()
    }
    // 判断输入框不能为空
    if (!this.data.value) {
      this.setData({
        showList: []
      })
      return
    }
    //将搜索的值保存起来并进行去重 
    let index = historyList.findIndex((item: any) => {
      return item == this.data.value
    })
    if (index > -1) {

    } else {
      // 判重后添加到历史记录
      historyList.unshift(this.data.value)
      this.setData({
        historyList
      })
      // 历史记录存储本地
      wx.setStorageSync('historyList', historyList)
    }

    // 搜索的接口
    getSearchList({ query: this.data.value }).then((res: any) => {
      // console.log(res.message);
      this.setData({
        showList: res.message
      })
    })
  },
  // 数据回填
  searchHisHandle(e: any) {
    this.setData({
      value: e.currentTarget.dataset.item
    })
    this.getSearch()
  },
  // 历史记录清除
  deleteAll() {
    this.setData({
      historyList: []
    })
    wx.setStorageSync('historyList', [])
  },

  //单个删除事件
  deleteHandle(e: any) {
    let { historyList } = this.data
    historyList.splice(e.currentTarget.dataset.index, 1)
    this.setData({
      historyList
    })
    // 删除数据后再次存入本地
    wx.setStorageSync('historyList', historyList)
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    this.getSearch()
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // if (this.data.total > this.data.showList.length) {
    //   this.data.pagenum = this.data.pagenum + 1;
    //   this.getDetail()
    // } else {
    //   this.data.show = true;
    // }
  },
  /**
 * 生命周期函数--监听页面显示
 */
  onShow: function () {
    this.setData({
      historyList: wx.getStorageSync('historyList') || []
    })
  },
})